// // 专门处理路由权限的文件

// // 权限拦截在路由跳转，使用导航守卫

import router from '@/router'
import store from '@/store'
import nprogress from 'nprogress' // 引入进度条
import 'nprogress/nprogress.css' // 引入进度条样式

const writeList = ['/login', '/404'] // 白名单

router.beforeEach(async(to, from, next) => {
    nprogress.start()
    if (store.state.user.token) { // 1、如果有token的时候，
        if (to.path === '/login') {
            next('/') // 1.1 如果有token值，并且目前是在登录页面，那就“免登录”，直接进入主页
        } else {
            await store.dispatch('user/getUserInfo')
            next() // 1.2 如果有token，又不是登录页，直接next下一页，想去哪里去哪里
        }
    } else { // 2、如果没有token的时候，判断是否在白名单
        if (writeList.indexOf(to.path) > -1) { // 2.1如果有白名单，放行
            next()
        } else {
            // next('/login') // 2.2 如果不在白名单，强制回到登录页
        }
    }
    // next()
    nprogress.done()
})

// 后置导航守卫
router.afterEach(() => {
    nprogress.done()
})